/*
 * @Author: your name
 * @Date: 2022-02-04 17:22:37
 * @LastEditTime: 2022-02-07 18:31:55
 * @LastEditors: Please set LastEditors
 * @Description: 使用node连接mongoDB， 需要安装模块mongoDB cnpm install mongodb
 * @FilePath: \testHtmld:\SoftWareProject\mySoft\myNode\nodeToMongoDB.js
 */
//https://www.runoob.com/nodejs/nodejs-mongodb.html   参考教程
var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost:27017/runoob';
localhostDB();
// addData();
// updateData();
updateManyData();
findData();
/**
 * 连接数据库
 */
function localhostDB() {
  MongoClient.connect(url, function (err, db) {
    if (err) throw err;
    console.log("数据库已创建!");
    db.close();
  });
}
/**
 * 连接数据库,并创建数据库，创建集合
 */
function createDB() {
  MongoClient.connect(url, function (err, db) {
    if (err) throw err;
    console.log('数据库已创建');
    var dbase = db.db("tset");
    dbase.createCollection('books', function (err, res) {
      if (err) throw err;
      console.log("创建集合!");
      db.close();
    });
  });
}
/**
 * 插入数据
 */
function addData() {
  MongoClient.connect(url, function (err, db) {
    if (err) throw err;
    var dbo = db.db("tset");
    var myobj = [{
        name: '菜鸟工具',
        url: 'https://c.runoob.com',
        type: 'cn'
      },
      {
        name: 'Google',
        url: 'https://www.google.com',
        type: 'en'
      },
      {
        name: 'Facebook',
        url: 'https://www.google.com',
        type: 'en'
      }
    ];
    dbo.collection("site").insertMany(myobj, function (err, res) {
      if (err) throw err;
      console.log("插入的文档数量为: " + res.insertedCount);
      db.close();
    });
  });
}

function findData() {
  MongoClient.connect(url, function (err, db) {
    if (err) throw err;
    var dbo = db.db("tset");
    var whereStr = {
      "name": '我的新大明帝国'
    }; // 查询条件
    dbo.collection("books").find(whereStr).toArray(function (err, result) {
      if (err) throw err;
      console.log(result);
      db.close();
    });
  });
}
/**
 * 单数据更新
 */
function updateData() {
  MongoClient.connect(url, function (err, db) {
    if (err) throw err;
    var dbo = db.db("tset");
    var whereStr = {
      "name": '我的新大明帝国'
    }; // 查询条件
    var updateStr = {
      $set: {
        "url": "https://www.runoob.com"
      }
    };
    dbo.collection("books").updateOne(whereStr, updateStr, function (err, res) {
      if (err) throw err;
      console.log("文档更新成功");
      db.close();
    });
  });
}
/**
 * 多数据更新
 */
function updateManyData() {
  MongoClient.connect(url, function (err, db) {
    if (err) throw err;
    var dbo = db.db("tset");
    var whereStr = {
      "name": '我的新大明帝国'
    }; // 查询条件
    var updateStr = {
      $set: {
        "url": "集体更新111"
      }
    };
    dbo.collection("books").updateMany(whereStr, updateStr, function (err, res) {
      if (err) throw err;
      console.log(res)

      console.log(res.matchedCount + " 条文档被更新");
      db.close();
    });
  });
}